This invention relates generally to computer software programs and more specifically to software programs for automatically transferring digital data from one application program to another.
A common apparatus used in the computer industry is a scanner. A scanner translates physical data, such as a document or a photograph, into a digital representation of the data for use in the computer. The digital data are placed in an application. This application is usually associated with the scanner so I will call it a scanning application or source application.
An application is generally any distinct program in a computerxe2x80x94for example, a word-processing application, a financial-management application, a drawing application, or in this case a scanning application. Modern computers employ a multitasking environment, which means that a computer can operate several applications simultaneously.
Modern multitasking computer environments are available as various commercial operating systems such as Windows(copyright) and Macintosh systems(copyright). In order to facilitate use of the multitasking environment these commercial products use a graphical user interface. The graphical interface allows the user to operate the computer by pointing at commands with a mouse or touch pad and clicking to implement a command.
One common resource in such operating systems, sometimes called a xe2x80x9cclipboardxe2x80x9d is an area of shared memory for all the applications. Data can be transferred from one application to another through the use of the clipboard. All applications have access to the clipboard, and the clipboard can accept data in commonly used formats from applications.
Use of the term xe2x80x9cclipboardxe2x80x9d is not meant to limit my invention to the Windows environment. The term is meant to describe broadly an area of storage for objects, data, or their references, in any multitasking environment.
Drag-and-drop transfer is another feature of the graphical interface in a Windows-like system. It allows the user to transfer data from one application to another though the graphical user interface and mouse or touchpad.
Even if the destination application indicates that it supports a drag-and-drop transfer, there is a chance that the destination application cannot use the data xe2x80x9cdroppedxe2x80x9d onto it. The reason for this seeming error is that the destination application does not know what the data are that are being dropped onto it until after the drop is completed.
This is an unavoidable peril in making drag-and-drop transfers, whether they are made manually or automatically. I say unavoidable because, after all, these destination applications have been or will be designed by others and each application has a different format.
The Microsoft Corporation publishes a book titled Windows Interface Guidelines for Software Design. This book can be consulted for basic design principles in creating any application for the Windows environment. It can also be consulted for further understanding of certain concepts embodied in my invention.
Many users want to transfer the digital data from the scanning application to a different application to edit the data or to use the data in a project. Currently there are two different methods available for transferring the digital data, a manual transfer or a single-method transfer program.
(a) Manual transferxe2x80x94The user might be able to manually transfer digital data by performing all the steps in one of the following procedures:
1. Save the data to a file, start the destination application and then open the file in the destination application.
2. Copy the data from a source application to the system clipboard, start the destination application and paste the data from the clipboard to the destination application.
3. Using the now familiar graphic user interface and mouse or touchpad, drag the data icon from the source application and drop the data icon onto the destination application.
Although the user may attempt to transfer digital data through one of the above procedures, the destination application may not support that particular type of transfer. Therefore, even after one of the manual transfer procedures has been painstakingly followed, the transfer may fail.
If it fails, the user is left attempting the transfer by one of the other two manual procedures, which also may fail. Therefore, the user may have applied all three manual methods before successfully completing a transfer.
(b) Transfer programsxe2x80x94In response to the cumbersome nature of the manual transfer procedures, several types of software programs have been produced. These programs use different types of transfer methods: a single-method transfer, a preselected domain of supported applications, or a combination of the two.
A single-method transfer program automates one of the three manual procedures described above. This program reduces the amount of work required to transfer digital data as long as the destination application supports the particular type of transfer that the program employs.
If the single-method transfer program fails, the user must then resort to manually transferring the data. Thus, the problems associated with manual transfer discussed above are still present in this type of program.
A preselected domain of supported applications is a transfer program which contains a database of enumerated applications for which the program can complete a transfer. The database also specifies a transfer method for each of the enumerated applications.
When the user attempts a data transfer to a destination application, unless the destination application is one enumerated in the programs database, it cannot be completed. Therefore, the user is again left to attempt a manual transfer of the data.
Due to the shortcomings of the above transfer programs others have combined the two transfer methods discussed above to increase the probability that the data transfer will be successful. The problem is, however, that the user is still too often left to attempt a manual transfer.
(c) Conclusionxe2x80x94The methods discussed above fail to achieve quick and easy digital data transfer. Thus important aspects of the technology used in the field of the invention remain amenable to useful refinement.
The present invention introduces such refinement. In its preferred embodiments, the present invention has several aspects or facets that can be used independently, although they are preferably employed together to optimize their benefits.
In preferred embodiments of a first of its facets or aspects, the invention is an apparatus for transferring digital data from a source application in a computer to a destination application in a computer through one of plural types of transfers. The transfer is not limited to applications in one computerxe2x80x94the transfer may occur from a source application in one computer to a destination application in another computer. The word computer is to be interpreted in a broad sense to encompass any mode or means that may be developed for holding a procedure or application.
The apparatus includes some means for automatically determining how a digital data transfer can be made. For purposes of breadth and generality in describing and discussing my invention, I shall call these means the xe2x80x9cdetermining meansxe2x80x9d. The determining means operate by analyzing whether the destination application is receptive to a particular type of transfer.
The apparatus further includes some means for automatically making a type of transfer to which the analyzing shows the destination application is receptive. Again for generality and breadth in discussing my invention, I shall refer to these means simply as the xe2x80x9ctransfer-making meansxe2x80x9d. The transfer-making means operate in response to the output of the determining means.
The foregoing may constitute a description or definition of the first facet of the invention in its broadest or most general form. Even in this general form, however, it can be seen that this aspect of the invention significantly mitigates the difficulties left unresolved in the art.
In particular, this aspect or facet of the invention creates a very effective apparatus for automatically transferring digital data from one application to another. The apparatus is effective because it uses several different types of transfers. It does not, however, just blindly attempt these transfers to the destination application.
The apparatus, instead, analyzes the destination application to determine whether it is receptive to a particular type of transfer. This testing of the receptivity of the destination application to a clipboard transfer is dynamic.
It does not merely encompass looking at a list of destination applications for which particular transfers are supported. It actually determines whether the destination application supports a particular type of transfer. Therefore, my invention is adaptable to the destination application.
This feature allows the apparatus to transfer digital data to destination applications that will be created in the future, as well as those already existing but unknown to writers of particular scanning programs. Thus, the apparatus is not limited to transferring digital data to existing and known destination applications.
The use of plural types of transfers is also important because not all destination applications accept the same type of transfer. Therefore, this apparatus increases the probability that a transfer will be successful. Further, once the apparatus determines which transfer method is appropriate for the destination application, it automatically implements that transfer.
Thus, a once tedious manual process is almost completely automated by my invention. As previously discussed, the manual process can be frustrating and time consuming, whereas with my invention the transfer can be done essentially with the push of a button.
Although this aspect of the invention in its broad form thus represents a significant advance in the art, it is preferably practiced in conjunction with certain other features or characteristics that further enhance enjoyment of overall benefits.
For example, it is preferred that the apparatus further include a nonvolatile memory storage device holding operating instructions for the determining means and the transfer-making means. It is also preferred that the determining means include some means for automatically learning how a digital image transfer can be made.
It is further preferred that the determining means include some means for testing whether the destination application is receptive to a clipboard transfer. For generality in discussing my invention, I will refer to these means as the xe2x80x9ctesting meansxe2x80x9d. The testing means include some means for creating a clipboard entry of the data and analyzing the menu of the destination application to ascertain whether the destination application supports clipboard transfer.
It is preferred that the determining means further include some means for evaluating whether the destination application is receptive to a drag-and-drop transfer. Again for generality and breath in discussing my invention, I shall call these means simply the xe2x80x9cevaluating meansxe2x80x9d.
It is also preferred that the evaluating means operate after the testing means. Preferably the evaluating means include some means for analyzing the status flags of the destination application to assess whether the destination application supports a drag-and-drop transfer.
Another preference is that the source application, previously mentioned, include the determining means, the transfer-making means, the testing means, and the evaluating means. Preferably the apparatus further includes some means for making the destination application an active application after the transfer-making means complete said type of transfer to which the destination application is receptive.
In preferred embodiments of a second independent facet or aspect, the invention is an apparatus for transferring digital data from a source application in a computer to a destination application in a computer. The transfer is made through the use of the system clipboard. The apparatus includes some means for automatically testing whether the destination application is receptive to a clipboard transfer.
The apparatus also includes some means, which are responsive to the testing means, for automatically implementing a clipboard transfer. Again for generality I will refer to these means as the xe2x80x9cimplementing meansxe2x80x9d.
The foregoing may constitute a description or definition of the second facet of the invention in its broadest or most general form. Even in this general form, however, it can be seen that this aspect of the invention too significantly mitigate the difficulties left unresolved in the art.
In particular, this apparatus uses a clipboard transfer. This type of transfer is very effective because, as discussed earlier, the clipboard is an area of shared memory for all the applications. Further, virtually all applications support at least one of the data formats on the clipboard. Therefore, the chances that the clipboard transfer will be successful are very high.
This apparatus also automatically tests whether the destination application supports a clipboard transfer. If a clipboard transfer is supported the apparatus automatically implements the transfer.
Although this second aspect of the invention in its broad form thus represents a significant advance in the art, it is preferably practiced in conjunction with certain other features or characteristics that further enhance enjoyment of overall benefits.
For example, it is preferred that the apparatus further include a nonvolatile memory storage device holding operating instructions for the testing means and the implementing means. It is also preferred that the testing means include some means for creating a clipboard entry of the data and analyzing the menus of the destination application to determine whether the paste function has been enabled.
Although I am calling it a paste function, I mean it in a broad sense to incorporate its general meaning of copying the clipboard entry to a specified destination. I do not intend to limit this invention to the Windows environment. I will more completely explain this issue in the detailed description of the preferred embodiments.
Also preferred is that the apparatus further include some means for evaluating whether the destination application is receptive to a drag-and-drop transfer. I shall refer to these means simply as the xe2x80x9cevaluating meansxe2x80x9d. The evaluating means only operate if the testing means discover that the destination application is not receptive to a clipboard transfer.
The apparatus also includes some means, which are responsive to the evaluating means, for automatically implementing a drag-and-drop transfer. When the preference just described is observed it is desirable that the evaluating means include some means for examining the status flags in the destination application.
Another preference is that the testing means further include a database that specifies a transfer method for plural destination applications respectively. This is particularly useful in case the digital data cannot be transferred through a clipboard transfer or a drag-and-drop transfer. The preference also includes some means for automatically assessing whether the destination application is in the database. In this situation it is also preferred that the apparatus include some means for automatically implementing the transfer method specified in the database.
Although the database is known in the prior art it has particular value as an addition to the present invention. It allows the invention to encompass destination applications which do not support clipboard transfers or drag-and-drop transfers.
In preferred embodiments of a third of its independent aspects or facets, the invention is an apparatus for transferring digital data from a source application in a computer to a destination application in a computer through the use of a drag-and-drop transfer. The apparatus includes some means for automatically evaluating whether the destination application is receptive to drag-and-drop transfer, and means for automatically implementing drag-and-drop transfer. The implementing means operate in response to the output of the evaluating means.
The foregoing may constitute a description or definition of the third facet of the invention in its broadest or most general form. Even in this general form, however, it can be seen that this aspect of the invention too significantly mitigate the difficulties left unresolved in the art.
In particular, automated selection and performance of drag-and-drop transfer is especially useful since most application developers have invested great effort in designing and debugging their systems for this type of transfer. The underlying reason for this attention is that the drag-and-drop method is a particularly favored form of transfer among the great number of graphical-interface users who are uncomfortable with computer command syntax and even the relative abstraction of the clipboard.
Although this third aspect of the invention in its broad form thus represents a significant advance in the art, it is preferably practiced in conjunction with certain other features or characteristics that further enhance enjoyment of overall benefits.
For example, it is preferred that the apparatus further include a nonvolatile memory storage device holding operating instructions for the evaluating means and the implementing means. It is also preferred that the evaluating means include some means for examining the status flags in the destination application.
It is preferred that the evaluating means further include some means for automatically testing whether the destination application is responsive to a clipboard transfer. These means operate only if the evaluating means discover that the destination application is not receptive to a drag-and-drop transfer.
The apparatus also includes some means, which are responsive to the testing means, for automatically implementing a clipboard transfer. When the preference described above is observed, it is desirable that the testing means include some means for creating a clipboard entry of the data and analyzing the menus of the destination application to determine whether the paste function has been enabled. The database preference mentioned above is also desirable as a preference in this embodiment.
In preferred embodiments of a fourth of its aspects, the invention is a digital data transfer method which transfers data from a source application in a computer to a destination application in a computer. The method includes several steps.
The first step is establishing identification of a destination application. The second step is automatically ascertaining whether the destination application is running, and if it is not, then automatically starting the destination application.
The third step is automatically assessing whether the destination application has a transfer method specified in a database, and if it is specified, then automatically transferring the image to the destination application according to the method specified. If no transfer method is specified, then the next step is automatically setting up a clipboard transfer of the data.
The next step is automatically testing whether the destination application supports clipboard transfer, and if it is supported, then automatically applying the results of the testing step to implement the transfer. If clipboard transfer is not supported, then the method includes automatically evaluating whether the destination application supports drag-and-drop transfer. If drag-and-drop transfer is supported, then the next step is automatically applying the results of the evaluating step to implement the transfer.
The foregoing may constitute a description or definition of the fourth facet of the invention in its broadest or most general form. Even in this general form, however, it can be seen that this aspect of the invention too significantly mitigate the difficulties left unresolved in the art.
In particular, this method completely automates a process which was mainly a manual process. This method is also organized in such a way that the most effective type of transfer is tested first. The method first assesses whether the destination application has a specified transfer method in a database.
This step is done first because if the transfer method is specified in the database, then a transfer can immediately be made according to the method specified. No analyzing of the destination application is necessary. Therefore, it saves time and reduces uncertainty to first ascertain whether the destination application is enumerated in the database.
If the destination application is not enumerated in the database, the method then tests whether the destination application supports clipboard transfer. It is important that a clipboard transfer be tested before a drag-and-drop transfer. The probability that a destination application supports clipboard transfer, as opposed to drag-and-drop transfer, is greater. Thus, testing whether a clipboard transfer is supported first increases the efficiency of the method.
Also, clipboard transfers are more effective because the clipboard is a universal resource, in a sense, for a Windows-like multitasking system. The data in the clipboard is accessible to all the applications and is in a format which almost all applications are able to use. Further, my invention actually detects whether the destination application supports the data format of the clipboard entry.
Therefore, if the destination application indicates that it is receptive to a clipboard transfer, it can actually use the transferred data. In comparison, the destination application may indicate that it supports drag-and-drop transfer, but there is a chance that the destination application cannot use the data dropped onto it as discussed previously. This is another reason that it is important to test the clipboard transfer first.
The drag-and-drop method is included in this method, however, because some applications do not support clipboard transfer, but they do support drag-and-drop transfer. Therefore, by including drag-and-drop transfer I increase the overall effectiveness of the method.
Although this fourth aspect of the invention in its broad form thus represents a significant advance in the art, it is preferably practiced in conjunction with certain other features or characteristics that further enhance enjoyment of overall benefits.
For example, it is preferred that the establishing step include receiving identification of the destination application from a user. It is also preferred that the testing step include looking for a menu in the destination application, and if no menu is found, then automatically evaluating whether the destination application supports drag-and-drop transfer.
If the preference just described is observed, then it is also preferred that the method automatically attempt clipboard transfer to the destination application if drag-and-drop transfer is not supported. This clipboard transfer is slightly different from the clipboard transfer discussed earlier, although they both are clipboard transfers. The clipboard transfer mentioned earlier tests the destination application to determine whether it has a menu. If no menu is found, then the method moves directly to the drag-and-drop evaluating step.
On the other hand, this clipboard transfer does not require the destination application to have a menuxe2x80x94the method just attempts to make a clipboard transfer. The method attempts a transfer directly through the use of keyboard codes without testing a graphic menu. It is preferred that if this clipboard transfer is not supported, then the system automatically refrains from making any transfer.
It is also preferred that the method further include displaying a list of running applications and displaying a list of applications previously used by the user as a selection of possible destination applications for the user. It is also preferred that the method further include receiving from the user a xe2x80x9cbrowsexe2x80x9d instruction, and in response, displaying a listing of all possible destination applications for the user.
All of the foregoing operational principles and advantages of the present invention will be more fully appreciated upon consideration of the following detailed description, with reference to the appended drawings, of which: